<?php
class UsersController extends AppController {

	var $name = 'Users';
	
	function BeforeFilter() {
		parent::BeforeFilter();
		$this->set('statuses', array('active'=>'Active User', 'banned'=>'Banned User', 'flagged'=>'Flagged User'));
		$this->set('roles', array('user'=>'User', 'admin'=>'Administrator'));		
	}
	
	function login()
	{
		if(!empty($this->data))
		{
			if($data = $this->User->login($this->data['User']['email'],$this->data['User']['password']))
			{				
				if('banned' == $data['User']['status'])
				{
					$this->Session->setFlash('You have banned. Please contact administrator');
					$this->redirect('/users/login');
				}
				elseif($data['User']['role'] == 'admin')
				{
					$this->Session->Write('User',$data['User']);
					$this->redirect('/admin/users/index');
				}
				else
				{
					$this->Session->Write('User',$data['User']);
					$this->redirect('/users/index');
				}
			}			
			else
			{
				$this->Session->setFlash('email/password may be wrong');				
				$this->redirect('/users/login');
			}
		}
	}
	
	function logout()
	{
		$this->Session->destroy();
		$this->redirect('/users/login');
	}
	
	function index()
	{
		//echo $this->Session->read('User.id');
	}
	
	function admin_index() {
		$this->User->recursive = 0;
		$this->set('users', $this->paginate());
	}

	function admin_view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid user', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('user', $this->User->read(null, $id));
	}

	function admin_add() {
		if (!empty($this->data)) {
			$this->User->create();
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('The user has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The user could not be saved. Please, try again.', true));
			}
		}
	}

	function admin_edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid user', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('The user has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The user could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->User->read(null, $id);
		}
	}

	function admin_delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for user', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->User->delete($id)) {
			$this->Session->setFlash(__('User deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('User was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
}
